package frsf.cidisi.exercise.laberinto.situationCalculus.actions;

import frsf.cidisi.exercise.laberinto.situationCalculus.EstadoLaberinto;
import frsf.cidisi.exercise.laberinto.situationCalculus.util.Orientacion;
import frsf.cidisi.exercise.laberinto.situationCalculus.util.Par;
import frsf.cidisi.faia.agent.situationcalculus.SituationCalculusAction;
import frsf.cidisi.faia.state.AgentState;
import frsf.cidisi.faia.state.EnvironmentState;

public class Avanzar extends SituationCalculusAction {

    @Override
    public EnvironmentState execute(AgentState ast, EnvironmentState est) {
        
    	EstadoLaberinto laberinto = (EstadoLaberinto) est;
    	Par posicion = laberinto.getPosicion();
    	Orientacion o = laberinto.getOrientacion();
    	laberinto.setPosicion(posicion.sumar(o.getOrientacion()));
        
    	return est;
    }

    @Override
    public String toString() {
        return "avanzar";
    }
}

